// 定义表单校验规则

import { userAccountCheck } from '@/api/user'
export default {
  // 用户名校验
  account (value) {
    if (!value) return '请输入用户名'
    if (!/^[a-zA-Z]\w{5,19}$/.test(value)) return '字符开头且6~20个字符'
    return true
  },
  // 用户校验且校验唯一性
  async accountApi (value) {
    if (!value) return '请输入用户名'
    if (!/^[a-zA-Z]\w{5,19}$/.test(value)) return '字符开头且6~20个字符'
    const data = await userAccountCheck(value)
    if (data.result.valid) return '用户已存在'
    return true
  },

  // 密码校验
  password (value) {
    if (!value) return '请输入正确密码'
    if (!/^\w{6,24}$/.test(value)) return '密码是6~24个字符'
    return true
  },

  // 重复密码校验
  rePassword (value, { form }) {
    if (!value) return '请输入密码'
    if (!/^\w{6,24}$/.test(value)) return '密码是6~24个字符'
    // form表单数据对象
    if (value !== form.password) return '密码需要保持一致'
    return true
  },

  // 手机号校验
  mobile (value) {
    if (!value) return '请输入手机号码'
    if (!/^1[3-9]\d{9}$/.test(value)) return '手机号码格式不对'
    return true
  },

  // 验证码校验
  code (value) {
    if (!value) return '请输入验证码'
    if (!/^\d{6}$/.test(value)) return '短信验证码6个数字'
    return true
  },

  // 登录协议校验
  isAgree (value) {
    if (!value) return '请勾选登录协议'
    return true
  }
}
